﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;

namespace RoketPack.IM
{
    public class NotificationSettings
    {
        private bool p_OnContactSignIn = true;
        private bool p_OnContactStartGame = true;
        private bool p_OnContactJoinServer = true;
        private bool p_OnUserStartGame = true;
        private bool p_OnUserJoinServer = true;

        /// <summary>
        /// Whether the user should be notified when one of their contact's comes online.
        /// </summary>
        [Category("Notifications Recieved"), DisplayName("Contact signs in"),
         Description("Notify me when one of my contacts comes online."), DefaultValue(true)]
        public bool OnContactSignIn
        {
            get
            {
                return this.p_OnContactSignIn;
            }
            set
            {
                this.p_OnContactSignIn = value;
            }
        }

        /// <summary>
        /// Whether the user should be notified when one of their contact's starts playing a game (or application).
        /// </summary>
        [Category("Notifications Recieved"), DisplayName("Contact starts a game"),
         Description("Notify me when one of my contacts starts playing a game."), DefaultValue(true)]
        public bool OnContactStartGame
        {
            get
            {
                return this.p_OnContactStartGame;
            }
            set
            {
                this.p_OnContactStartGame = value;
            }
        }

        /// <summary>
        /// Whether the user should be notified when one of their contact's joins a game server.
        /// </summary>
        [Category("Notifications Recieved"), DisplayName("Contact joins server"),
         Description("Notify me when one of my contacts joins a game server."), DefaultValue(true)]
        public bool OnContactJoinServer
        {
            get
            {
                return this.p_OnContactJoinServer;
            }
            set
            {
                this.p_OnContactJoinServer = value;
            }
        }

        /// <summary>
        /// Whether the user's contacts should be notified that the user has started a game (or application).
        /// </summary>
        [Category("Notifications Sent"), DisplayName("I start a game"),
         Description("Notify my contacts when I start a game."), DefaultValue(true)]
        public bool OnUserStartGame
        {
            get
            {
                return this.p_OnUserStartGame;
            }
            set
            {
                this.p_OnUserStartGame = value;
            }
        }

        /// <summary>
        /// Whether the user's contacts should be notified that the user has joined a server.
        /// </summary>
        [Category("Notifications Sent"), DisplayName("I join a server"),
         Description("Notify my contacts when I join a game server."), DefaultValue(true)]
        public bool OnUserJoinServer
        {
            get
            {
                return this.p_OnUserJoinServer;
            }
            set
            {
                this.p_OnUserJoinServer = value;
            }
        }
    }
}
